package com.kolon.business.mngr.service.dao;

import java.sql.SQLException;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Component;

import com.kolon.framework.interfaces.AbstractDao;

/**
 *	ServiceDaoImpl class
 *	@author Stone
 *	@since 2011.07.05
 */
@SuppressWarnings("rawtypes")
@Component("com.kolon.business.mngr.service.dao.ServiceDaoImpl")
public class ServiceDaoImpl extends AbstractDao implements ServiceDao {
	
	/**
	 * 앱 명 체크 조회
	 */
	public int getAppNmCnt(Map map) throws SQLException {
		return getCount("mngr.service.getAppNmCnt", map);
	}

	/**
	 * 디렉토리 체크 조회
	 */
	public int getFdrNmCnt(Map map) throws SQLException {
		return getCount("mngr.service.getFdrNmCnt", map);
	}
	
	/**
	 * 버전 체크 조회
	 */
	public int getAppVerCnt(Map map) throws SQLException {
		return getCount("mngr.service.getAppVerCnt", map);
	}
	
	/**
	 * 히스토리 체크 버전 조회
	 */
	public int getAppHstyCnt(Map map) throws SQLException {
		return getCount("mngr.service.getAppHstyCnt", map);
	}
	
	/**
	 * 팀 수 조회
	 */
	public int getDeptAppsCount(Map map) throws SQLException {
		return getCount("mngr.service.getDeptAppsCount", map);
	}
	
	/**
	 * 팀 목록 조회
	 */
	public List getDeptAppsPageList(Map map, int startIndex, int endIndex) throws SQLException {
		return getPageList("mngr.service.getDeptAppsPageList", map, startIndex, endIndex);
	}
	
	/**
	 * 서비스 팀 목록 조회
	 */
	public List getServTeamList(Map map) throws SQLException {
		return getList("mngr.service.getServTeamList", map);
	}
	
	/**
	 * 서비스 회사 목록 조회
	 */
	public List getServCpyList(Map map) throws SQLException {
		return getList("mngr.service.getServCpyList", map);
	}

	/**
	 * 회사에 대한 팀 목록 조회
	 */
	public List getServCpyTeamList(Map map) throws SQLException {
		return getList("mngr.service.getServCpyTeamList", map);
	}
	
	/**
	 * 팀 등록시 중복체크
	 */
	public Map getTeamChk(Map map) throws SQLException {
		return getMap("mngr.service.getTeamChk", map);
	}
	
	/**
	 * 서비스 정보 조회
	 */
	public Map getMap(Map map) throws SQLException {
		return getMap("mngr.service.getMap", map);
	}
	
	/**
	 * 서비스 앱 정보 조회
	 */
	public Map getAppMap(Map map) throws SQLException {
		return getMap("mngr.service.getAppMap", map);
	}
	
	/**
	 * 서비스 레코드수 조회
	 */
	public int getCount(Map map) throws SQLException {
		return getCount("mngr.service.getCount", map);
	}
	
	/**
	 * 서비스 목록 조회
	 */
	public List getPageList(Map map, int startIndex, int endIndex) throws SQLException {
		return getPageList("mngr.service.getPageList", map, startIndex, endIndex);
	}
	
	/**
	 * 서비스 앱 목록 조회
	 */
	public List getAppList(Map map) throws SQLException {
		return getList("mngr.service.getAppList", map);
	}
	
	/**
	 * 서비스 시퀀스를 얻음
	 */
	public Map getMax() throws SQLException {
		return getMap("mngr.service.getMax", null);
	}
	
	/**
	 * 앱 시퀀스를 얻음
	 */
	public Map getAppMax() throws SQLException {
		return getMap("mngr.service.getAppMax", null);
	}
	
	/**
	 * 서비스 팀 등록
	 */
	public void insertServTeam(Map map) throws SQLException {
		insert("mngr.service.insertServTeam", map);
	}
	
	/**
	 * 서비스 등록
	 */
	public void insert(Map map) throws SQLException {
		insert("mngr.service.insert", map);
	}
	
	/**
	 * 앱 정보 등록
	 */
	public void insertAppInfo(Map map) throws SQLException {
		insert("mngr.service.insertAppInfo", map);
	}
	
	/**
	 * 서비스 수정
	 */
	public void update(Map map) throws SQLException {
		update("mngr.service.update", map);
	}

	/**
	 * 서비스 사용여부 수정
	 */
	public void updateUseYn(Map map) throws SQLException {
		update("mngr.service.updateUseYn", map);
	}

	/**
	 * 서비스 수정날짜 수정
	 */
	public void updateMdfyDttm(Map map) throws SQLException {
		update("mngr.service.updateMdfyDttm", map);
	}

	/**
	 * 서비스 팀 사용여부 수정 (삭제)
	 */
	public void updateTeamUseYn(Map map) throws SQLException {
		update("mngr.service.updateTeamUseYn", map);
	}
	
	/**
	 * 서비스 팀 사용여부 수정 (모두 삭제)
	 */
	public void updateTeamAllUseYn(Map map) throws SQLException {
		update("mngr.service.updateTeamAllUseYn", map);
	}
	
	/**
	 * 서비스 업그레이드 수정
	 */
	public void upgrade(Map map) throws SQLException {
		update("mngr.service.upgrade", map);
	}
	
	/**
	 * 서비스 삭제
	 */
	public void delete(Map map) throws SQLException {
		delete("mngr.service.delete", map);
	}
	
	/**
	 * 서비스 앱 삭제
	 */
	public void deleteServInfo(Map map) throws SQLException {
		delete("mngr.service.deleteServInfo", map);
	}
	
	/**
	 * 앱 삭제
	 */
	public void deleteAppInfo(Map map) throws SQLException {
		delete("mngr.service.deleteAppInfo", map);
	}
	
	/**
	 * 서비스 팀 삭제
	 */
	public void deleteServTeam(Map map) throws SQLException {
		delete("mngr.service.deleteServTeam", map);
	}
	
	/**
	 * 서비스 삭제시 해당 팀 삭제
	 */
	public void deleteServTeamList(Map map) throws SQLException {
		delete("mngr.service.deleteServTeamList", map);
	}
	
}
